home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Magazin/MacEasy 2
/
Mac Magazin and MacEasy Magazine CD - Issue 02.iso
/
Sharewarebibliothek
/
Applikationen
/
Alpha.5.81 folder
/
Tcl
/
SystemCode
/
marks.tcl
< prev
next >
Wrap
Text File
|
1994-06-16
|
2KB
|
82 lines
# ================================================================================
# Clear marks for front window.
#================================================================================
proc clearFileMarks {} {
set nm [lindex [winNames -f] 0]
foreach mk [getNamedMarks] {
if {$nm == [lindex $mk 1]} {
removeNamedMark -n [lindex $mk 0] -w [lindex $mk 1]
}
}
}
proc sortMarksFile {} {
set nm [lindex [winNames -f] 0]
set mks {}
foreach mk [getNamedMarks] {
if {$nm == [lindex $mk 1]} {
removeNamedMark -n [lindex $mk 0] -w [lindex $mk 1]
lappend mks $mk
}
}
foreach mk [lsort $mks] {
set name [lindex $mk 0]
set disp [lindex $mk 2]
set pos [lindex $mk 3]
set end [lindex $mk 4]
setNamedMark $name $disp $pos $end
}
}
# ================================================================================
# Simple mark stack implementation
# ================================================================================
proc pushMark {} {
global markStack
global markName
set name mark$markName
incr markName
createTMark $name [getPos]
set fileName [lindex [winNames -f] 0]
set markStack [linsert $markStack 0 [list $fileName $name]]
message [concat Mark [llength $markStack] Pushed]
}
proc popMark {} {
global markStack
if {[llength $markStack] == "0"} {
alertnote "The mark stack is empty!"
return
}
set mark [lindex [lindex $markStack 0] 1]
set markStack [lreplace $markStack 0 0]
if {[catch {gotoTMark $mark}]} {
popMark
return
}
message [concat Mark [llength $markStack] Popped]
}
# Returns 'list' minus all top-level elements matching 'pat'.
# Used in 'closeHooks' to prune the mark stack.
proc removePat {list pat} {
while 1 {
set ind [lsearch $list $pat]
if {$ind == "-1"} {return $list}
set list [lreplace $list $ind $ind]
}
}